package main

import "imooc.com/ccmouse/learngo/interface/design/action/command/all"

// 应用场景：需要将请求封装为对象，以便参数化方法调用、延迟执行和排队执行时。
// 命令行模式将请求、接受者、执行者解耦，使得请求可以被记录、撤销和重做
func main() {
	//请求
	tv := &all.Tv{}
	// off命令
	off := &all.Off{
		Device: tv,
	}
	// 接收者
	OffButton := &all.Button{
		//执行者
		Command: off,
	}
	OffButton.Press()
	// on命令
	on := &all.On{
		Device: tv,
	}
	onButton := &all.Button{
		Command: on,
	}
	onButton.Press()
}
